//引入experss
const express = require('express');
//引入数据库
const pool = require('../pool.js');
//路由对象
let r = express.Router();


// 1.注册路由接口
// /v1/users/reg
r.post('/reg', (req, res, next) => {
    // 1.1获取数据
    let obj = req.body;
    // 1.2验证数据是否为空

    console.log(obj);
    if (!obj.uname) {
        res.send({
            "code": 401,
            msg: "uname 不能为空"
        });
        return;
    }
    if (!obj.upwd) {
        res.send({
            "code": 402,
            msg: "upwd 不能为空"
        });
        return;
    }
    if (!obj.email) {
        res.send({
            "code": 403,
            msg: "uemail 不能为空"
        });
        return;
    }
    if (!obj.phone) {
        res.send({
            "code": 404,
            msg: "phone 不能为空"
        });
        return;
    }
    //验证手机号码格式
    if (!/^1[3-9]\d{9}$/.test(obj.phone)) {
        res.send({
            "code": 405,
            msg: '手机号格式错误'
        });
        return;
    }
    //1.3执行SQL命令，插入数据
    pool.query('insert into xz_user set ?', [obj], (err, result) => {
        //如果有错误,抛给下一个错误处理
        if (err) {
            next(err);
            return;
        }
        console.log(result);
        //如果没有错误
        res.send({
            "code": 200,
            msg: '注册成功'
        });
    });
});

//2.用户登录(post/login)
// 地址http://127.0.0.1:8080/v1/users/reg/login
r.post('/login', (req, res, next) => {
    // 获取post请求数据
    let log = req.body;
    console.log(req);
    //验证是否为空
    if (!log.uname) {
        res.send({
            "code": 401,
            msg: 'uname不能为空'
        });
        return;
    }
    if (!log.upwd) {
        res.send({
            "code": 401,
            msg: 'upwd不能为空'
        });
        return;
    }
    //执行sql命令
    pool.query('select *from xz_user where uname=? and upwd=?', [log.uname, log.upwd], (err, result) => {
        if (err) {
            next(err);
            return;
        }
        //    console.log(result);
        if (result.length === 0) {
            res.send({
                "code": 201,
                msg: '账号或密码错误'
            });
        } else {
            res.send({
                "code": 200,
                msg: '登陆成功'
            });
        }

    });
});


// 3.添加修改用户的接口(put /)以body方式传递(uid ,email,phone,user_name,gender)判断各项数据是否为空，执行SQL命令
r.put('/',(req,res, next)=>{
    // 获取数据
    let pu=req.body;
    //判断(uid ,email,phone,user_name,gender)判断各项数据是否为空
    // 遍历对象获取每个属性
    let i=400;//初始化，保存状态码
    for(let k in pu){
        // 每次循环，i加1
        i++;
        // console.log(k,obj[k]);
        //判断属性值是否为空，并提示不能为空
        if(!pu[k]){
            res.send({code:i,msg:k+'不能为空'});
            return;
        }
    }
    //执行SQL命令
    pool.query('update xz_user set ?where uid=?',[pu,pu.uid],(err,result)=>{
        if(err){
            next(err);
            return;
        }
        if(result.affectedRows===0){
            res.send({code:201,msg:'修改失败'});
        }else{
            res.send({code:200,msg:'修改成功'});
        }
    });
});
// 导出路由对象
module.exports = r;